package cn.fl.mcr.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.mcr.vo.McrBillMVO;
import cn.cmm.base.framework.utils.CollectionUtils;
import cn.lionbridgecapital.loan.model.dto.McrBillMDTO;

/**
 * @Description: 小贷账单主表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class McrBillMVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto McrBillMDTO
	 * @return McrBillMVO
	 */
	public static McrBillMVO toVO(McrBillMDTO dto) {
		McrBillMVO  vo = null;
		if (dto != null) { 
			vo = new McrBillMVO();
			vo.setId(dto.getId());
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCrCntNo(dto.getCrCntNo());//贷款合同号
			vo.setCrAmt(dto.getCrAmt());//贷款金额
			vo.setActCrAmt(dto.getActCrAmt());//实际放款金额
			vo.setLoanBizTypCd(dto.getLoanBizTypCd());//业务类型（MCR0007）
			vo.setCrTypCd(dto.getCrTypCd());//贷款类型（MCR0001）
			vo.setCrPd(dto.getCrPd());//租赁期数
			vo.setCrPdUntCd(dto.getCrPdUntCd());//贷款期数单位（MCR0003）
			vo.setRateTypCd(dto.getRateTypCd());//计息方式（MCR0002）
			vo.setCrRatePct(dto.getCrRatePct());//贷款日利率（%）
			vo.setRntAmt(dto.getRntAmt());//每期租金
			vo.setCrDt(dto.getCrDt());//放款日
			vo.setLoanStsCd(dto.getLoanStsCd());//贷款状态（MCR0005）
			vo.setCrLvlCd(dto.getCrLvlCd());//信用等级（MCR0004）
			vo.setCrLimAmt(dto.getCrLimAmt());//信用额度
			vo.setTotLoanAmt(dto.getTotLoanAmt());//已用额度
			vo.setTotRetAmt(dto.getTotRetAmt());//累计归还额度
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setSpecStsCd(dto.getSpecStsCd());//专款专用状态（MCR0009）
			vo.setStlDt(dto.getStlDt());//结清时间
			vo.setLoanSource(dto.getLoanSource());
			vo.setLoanChannel(dto.getLoanChannel());
			vo.setLoanId(dto.getLoanId());
			vo.setLoanAccountId(dto.getLoanAccountId());
			vo.setBankId(dto.getBankId());
			vo.setProvince(dto.getProvince());
			vo.setCity(dto.getCity());
			vo.setLoanAccountNm(dto.getLoanAccountNm());
			vo.setLoanName(dto.getLoanName());
			vo.setUploadStsCd(dto.getUploadStsCd());
			vo.setCntDownLoadStsCd(dto.getCntDownLoadStsCd());

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

			vo.setOverdueAmount(dto.getOverdueAmount());
			vo.setOverdueDate(dto.getOverdueDate());
			vo.setOverdueDay(dto.getOverdueDay());
			vo.setPenaltyAmount(dto.getPenaltyAmount());
			vo.setPayPd(dto.getPayPd());
			vo.setOvdCntQty(dto.getOvdCntQty());
			vo.setIsPuAdSe(dto.getIsPuAdSe());
			vo.setLoanMsg(dto.getLoanMsg());
			vo.setIsInform(dto.getIsInform());
			vo.setCstTypCd(dto.getCstTypCd());
			vo.setBuyBackFailReason(dto.getBuyBackFailReason());
			vo.setRepSts(dto.getRepSts());
			vo.setBuyBackBatchNo(dto.getBuyBackBatchNo());
			vo.setRefuseTrust(dto.getRefuseTrust());
			vo.setSqBuyBackBatchNo(dto.getSqBuyBackBatchNo());
			vo.setUsrNm(dto.getUsrNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo McrBillMVO
	 * @return McrBillMDTO
	 */
	public static McrBillMDTO toDTO(McrBillMVO vo) {
		McrBillMDTO dto = null;
		if (vo != null) {
			dto = new McrBillMDTO();
			dto.setId(vo.getId());
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setCrCntNo(vo.getCrCntNo());//贷款合同号
			dto.setCrAmt(vo.getCrAmt());//贷款金额
			dto.setActCrAmt(vo.getActCrAmt());//实际放款金额
			dto.setLoanBizTypCd(vo.getLoanBizTypCd());//业务类型（MCR0007）
			dto.setCrTypCd(vo.getCrTypCd());//贷款类型（MCR0001）
			dto.setCrPd(vo.getCrPd());//租赁期数
			dto.setCrPdUntCd(vo.getCrPdUntCd());//贷款期数单位（MCR0003）
			dto.setRateTypCd(vo.getRateTypCd());//计息方式（MCR0002）
			dto.setCrRatePct(vo.getCrRatePct());//贷款日利率（%）
			dto.setRntAmt(vo.getRntAmt());//每期租金
			dto.setCrDt(vo.getCrDt());//放款日
			dto.setLoanStsCd(vo.getLoanStsCd());//贷款状态（MCR0005）
			dto.setCrLvlCd(vo.getCrLvlCd());//信用等级（MCR0004）
			dto.setCrLimAmt(vo.getCrLimAmt());//信用额度
			dto.setTotLoanAmt(vo.getTotLoanAmt());//已用额度
			dto.setTotRetAmt(vo.getTotRetAmt());//累计归还额度
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setSpecStsCd(vo.getSpecStsCd());//专款专用状态（MCR0009）
			dto.setStlDt(vo.getStlDt());//结清时间
			dto.setLoanSource(vo.getLoanSource());
			dto.setLoanChannel(vo.getLoanChannel());
			dto.setLoanId(vo.getLoanId());
			dto.setLoanAccountId(vo.getLoanAccountId());
			dto.setBankId(vo.getBankId());
			dto.setProvince(vo.getProvince());
			dto.setCity(vo.getCity());
			dto.setLoanAccountNm(vo.getLoanAccountNm());
			dto.setLoanName(vo.getLoanName());
			dto.setUploadStsCd(vo.getUploadStsCd());
			dto.setCntDownLoadStsCd(vo.getCntDownLoadStsCd());

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setOvdCntQty(vo.getOvdCntQty());
			dto.setIsPuAdSe(vo.getIsPuAdSe());
			dto.setLoanMsg(vo.getLoanMsg());
			dto.setIsInform(vo.getIsInform());
			dto.setCstTypCd(vo.getCstTypCd());
			dto.setBuyBackFailReason(vo.getBuyBackFailReason());
			dto.setRepSts(vo.getRepSts());
			dto.setBuyBackBatchNo(vo.getBuyBackBatchNo());
			dto.setRefuseTrust(vo.getRefuseTrust());
			dto.setSqBuyBackBatchNo(vo.getSqBuyBackBatchNo());
			dto.setUsrNm(vo.getUsrNm());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<McrBillM>
	 * @return List<McrBillMDTO>
	 */
	public static List<McrBillMVO> toVOList(List<McrBillMDTO> list) {
		List<McrBillMVO>  voList = new ArrayList<McrBillMVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (McrBillMDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 *  VO集合 转 DTO集合
	 * @param list List<McrBillMVO>
	 * @return List<McrBillMDTO>
	 */
	public static List<McrBillMDTO> toDTOList(List<McrBillMVO> list) {
		List<McrBillMDTO>  dtoList = new ArrayList<>();
		if(CollectionUtils.isNotEmpty(list)){
			for (McrBillMVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}

	public static List<McrBillMVO> toVoList(List<cn.fl.mcr.dto.McrBillMDTO> list) {
		List<McrBillMVO>  voList = new ArrayList<McrBillMVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (cn.fl.mcr.dto.McrBillMDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

	public static McrBillMVO toVO(cn.fl.mcr.dto.McrBillMDTO dto) {
		McrBillMVO  vo = null;
		if (dto != null) {
			vo = new McrBillMVO();
			vo.setId(dto.getId());
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCrCntNo(dto.getCrCntNo());//贷款合同号
			vo.setCrAmt(dto.getCrAmt());//贷款金额
			vo.setActCrAmt(dto.getActCrAmt());//实际放款金额
			vo.setLoanBizTypCd(dto.getLoanBizTypCd());//业务类型（MCR0007）
			vo.setCrTypCd(dto.getCrTypCd());//贷款类型（MCR0001）
			vo.setCrPd(dto.getCrPd());//租赁期数
			vo.setCrPdUntCd(dto.getCrPdUntCd());//贷款期数单位（MCR0003）
			vo.setRateTypCd(dto.getRateTypCd());//计息方式（MCR0002）
			vo.setCrRatePct(dto.getCrRatePct());//贷款日利率（%）
			vo.setRntAmt(dto.getRntAmt());//每期租金
			vo.setCrDt(dto.getCrDt());//放款日
			vo.setLoanStsCd(dto.getLoanStsCd());//贷款状态（MCR0005）
			vo.setCrLvlCd(dto.getCrLvlCd());//信用等级（MCR0004）
			vo.setCrLimAmt(dto.getCrLimAmt());//信用额度
			vo.setTotLoanAmt(dto.getTotLoanAmt());//已用额度
			vo.setTotRetAmt(dto.getTotRetAmt());//累计归还额度
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setSpecStsCd(dto.getSpecStsCd());//专款专用状态（MCR0009）
			vo.setStlDt(dto.getStlDt());//结清时间
			vo.setLoanSource(dto.getLoanSource());
			vo.setLoanChannel(dto.getLoanChannel());
			vo.setLoanId(dto.getLoanId());
			vo.setLoanAccountId(dto.getLoanAccountId());
			vo.setBankId(dto.getBankId());
			vo.setProvince(dto.getProvince());
			vo.setCity(dto.getCity());
			vo.setLoanAccountNm(dto.getLoanAccountNm());
			vo.setLoanName(dto.getLoanName());
			vo.setUploadStsCd(dto.getUploadStsCd());
			vo.setCntDownLoadStsCd(dto.getCntDownLoadStsCd());

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

			vo.setOverdueAmount(dto.getOverdueAmount());
			vo.setOverdueDate(dto.getOverdueDate());
			vo.setOverdueDay(dto.getOverdueDay());
			vo.setPenaltyAmount(dto.getPenaltyAmount());
			vo.setPayPd(dto.getPayPd());
			vo.setOvdCntQty(dto.getOvdCntQty());
			vo.setIsPuAdSe(dto.getIsPuAdSe());
			vo.setLoanMsg(dto.getLoanMsg());
			vo.setIsInform(dto.getIsInform());
		}
		return vo;
	}
}
